import {
	Login
} from '../api/user';
import {
	getToken,
	removeToken
} from './auth';
import env from './env';


// 封装数据返回成功提示函数------------------------------------------------------
function successState(res) {
	// console.log(res);
	let code = res.data.status;
	// console.log('@return-data:')
	// console.log(res)
	//公共报错提醒
	if (code !== 200) {
		// 非成功状态码弹窗
		uni.showToast({
			icon: 'none',
			duration: 3000,
			title: `${res.data.data}`
		});
		return false
	} else {
		return true
	}
	// 登陆失效
	// if (res.data.status === 403) {
	// 	// 清除本地token
	// 	removeToken()
	// 	// 关闭所有页面返回到登录页
	// 	uni.reLaunch({
	// 		url: '/subpages/front-login/front-login'
	// 	})
	// }
	// console.log('/------http(END)------/')

	// return res
}
// 封装数据返回失败提示函数------------------------------------------------------
function errorState(err) {
	// console.log(err);
	// 请求失败弹窗
	uni.showToast({
		icon: 'none',
		duration: 3000,
		title: '服务器错误,请稍后再试'
	});
	// console.log('/------http(END)------/')
}


// 封装axios---------------------------------------------------------------------
function service(options = {}) {
	let url = options.url
	options.url = `${env.baseUrl}${options.url}`;
	// 白名单
	let wList = ['/login', '/register', '/count', '/imgUpload', '/ExcelUpload']

	// 判断是否有token，如果没有，就跳转到登录页
	// if (!getToken() && url != "/login" && url != "/register") {
	// 	uni.navigateTo({
	// 		url: "/pages/front-login/front-login"
	// 	})
	// 	return
	// }
	// 判断本地是否存在token，如果存在则带上请求头
	// if (getToken() && wList.indexOf(url)==-1) {
	// 	options.header = {
	// 		'content-type': 'application/json',
	// 		'authorization': `${getToken()}` // 这里是token
	// 	};
	// }
	// 如果不在白名单中
	// if (wList.indexOf(url) == -1) {
	// 	if (!getToken()) {
	// 		uni.reLaunch({
	// 			url: "/pages/front-login/front-login"
	// 		})
	// 		return
	// 	} else {
	// 		options.header = {
	// 			'content-type': 'application/json',
	// 			'authorization': `${getToken()}` // 这里是token
	// 		};
	// 	}
	// } else {
	// 	// 如果在白名单中
	// }
	options.header = {
		'content-type': 'application/json',
		'authorization': `${getToken()}` // 这里是token
	};

	// 如果不存在则跳转到登录页，但是得将登录路径放到白名单中

	return new Promise((resolved, rejected) => {
		options.success = (res) => {
			let result = successState(res)
			if (!result) {
				rejected(res.data)
			} else {
				resolved(res.data)
			}
		};
		options.fail = (err) => {
			errorState(err)
			rejected(res.data);
		};
		uni.request(options);
	});
}

export default service;